# Refer: https://blog.csdn.net/weixin_44827418/article/details/111255414
import yaml
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

# smtplib模块主要负责发送邮件：是一个发送邮件的动作，连接邮箱服务器，登录邮箱，发送邮件（有发件人，收信人，邮件内容）。
# email模块主要负责构造邮件：指的是邮箱页面显示的一些构造，如发件人，收件人，主题，正文，附件等。

# 读取密码文件


# 读取 YAML 文件
with open("pwd.yaml", "r", encoding="utf-8") as file:
    info = yaml.safe_load(file)  # 使用 safe_load 避免潜在安全问题

# 输出读取的数据
host_server = info["host_server"]  # qq邮箱smtp服务器
sender_email = info["sender_email"]  # 发件人邮箱
pwd = "wjbvdjozxbadegfh"
receiver = [info["receiver_email"]]  # 收件人邮箱
mail_title = "WaveCatcher Log"  # 邮件标题
mail_content = "您好，这是使用python登录QQ邮箱发送邮件的测试——zep"  # 邮件正文内容
# 初始化一个邮件主体
msg = MIMEMultipart()
msg["Subject"] = Header(mail_title, "utf-8")
msg["From"] = sender_email
msg["To"] = ";".join(receiver)
# 邮件正文内容
msg.attach(MIMEText(mail_content, "plain", "utf-8"))


smtp = SMTP_SSL(host_server)  # ssl登录

smtp.login(sender_email, pwd)

# sendmail(from_addr,to_addrs,msg,...):
# from_addr:邮件发送者地址
# to_addrs:邮件接收者地址。字符串列表['接收地址1','接收地址2','接收地址3',...]或'接收地址'
# msg：发送消息：邮件内容。一般是msg.as_string():as_string()是将msg(MIMEText对象或者MIMEMultipart对象)变为str。
smtp.sendmail(sender_email, receiver, msg.as_string())

# quit():用于结束SMTP会话。
smtp.quit()
